#!/bin/bash

# Agent Nacos 注册测试脚本
# 用于测试 Agent 注册到 Nacos 的功能

BASE_URL="http://localhost:9999"
NACOS_URL="http://localhost:8848"

echo "=========================================="
echo "Agent Nacos 注册功能测试"
echo "=========================================="

# 检查应用是否启动
echo "1. 检查应用健康状态..."
curl -s "$BASE_URL/agents/health" | jq '.' || echo "应用未启动或健康检查失败"
echo ""

# 获取所有已注册的 Agent
echo "2. 获取所有已注册的 Agent..."
curl -s "$BASE_URL/agents" | jq '.' || echo "获取 Agent 列表失败"
echo ""

# 检查 RootAgent 状态
echo "3. 检查 RootAgent 注册状态..."
curl -s "$BASE_URL/agents/RootAgent/status" | jq '.' || echo "检查 RootAgent 状态失败"
echo ""

# 检查 ChatAssistant 状态
echo "4. 检查 ChatAssistant 注册状态..."
curl -s "$BASE_URL/agents/ChatAssistant/status" | jq '.' || echo "检查 ChatAssistant 状态失败"
echo ""

# 获取 RootAgent 详细信息
echo "5. 获取 RootAgent 详细信息..."
curl -s "$BASE_URL/agents/RootAgent" | jq '.' || echo "获取 RootAgent 信息失败"
echo ""

# 获取 ChatAssistant 详细信息
echo "6. 获取 ChatAssistant 详细信息..."
curl -s "$BASE_URL/agents/ChatAssistant" | jq '.' || echo "获取 ChatAssistant 信息失败"
echo ""

# 测试手动注册新 Agent
echo "7. 测试手动注册新 Agent (TestAgent)..."
curl -s -X POST "$BASE_URL/agents/TestAgent/register?description=测试用的Agent&version=1.0.0" | jq '.' || echo "手动注册 Agent 失败"
echo ""

# 检查新注册的 Agent
echo "8. 检查新注册的 TestAgent..."
curl -s "$BASE_URL/agents/TestAgent" | jq '.' || echo "获取 TestAgent 信息失败"
echo ""

# 测试注销 Agent
echo "9. 测试注销 TestAgent..."
curl -s -X DELETE "$BASE_URL/agents/TestAgent" | jq '.' || echo "注销 TestAgent 失败"
echo ""

# 验证 Agent 已注销
echo "10. 验证 TestAgent 已注销..."
curl -s "$BASE_URL/agents/TestAgent/status" | jq '.' || echo "检查 TestAgent 状态失败"
echo ""

# 检查 Nacos 控制台中的服务
echo "11. 检查 Nacos 控制台中的服务列表..."
echo "请访问 Nacos 控制台查看注册的服务:"
echo "URL: $NACOS_URL/nacos"
echo "用户名: nacos"
echo "密码: nacos"
echo ""

# 通过 Nacos API 获取服务列表
echo "12. 通过 Nacos API 获取服务列表..."
curl -s "$NACOS_URL/nacos/v1/ns/service/list?pageNo=1&pageSize=100" | jq '.' || echo "获取 Nacos 服务列表失败"
echo ""

# 获取具体的 Agent 服务实例
echo "13. 获取 agent-rootagent 服务实例..."
curl -s "$NACOS_URL/nacos/v1/ns/instance/list?serviceName=agent-rootagent" | jq '.' || echo "获取 agent-rootagent 实例失败"
echo ""

echo "14. 获取 agent-chatassistant 服务实例..."
curl -s "$NACOS_URL/nacos/v1/ns/instance/list?serviceName=agent-chatassistant" | jq '.' || echo "获取 agent-chatassistant 实例失败"
echo ""

echo "=========================================="
echo "测试完成！"
echo "=========================================="
echo ""
echo "如果所有测试都成功，说明 Agent 已成功注册到 Nacos。"
echo "你可以在 Nacos 控制台中查看注册的服务："
echo "- agent-rootagent"
echo "- agent-chatassistant"
echo ""
echo "每个服务都包含了 Agent 的元数据信息，包括："
echo "- agent.name: Agent 名称"
echo "- agent.description: Agent 描述"
echo "- agent.version: Agent 版本"
echo "- agent.endpoint: Agent 端点 URL"
echo "- agent.capabilities: Agent 能力"